package com.he.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.he.domain.dto.ConditionDTO;
import com.he.domain.dto.PageResult;
import com.he.domain.dto.PhotoDTO;
import com.he.domain.dto.PhotoInfoDTO;
import com.he.domain.vo.AlbumBackVO;
import com.he.domain.vo.PhotoBackVO;
import com.he.domain.vo.PhotoVO;
import com.he.entity.Photo;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author He
 * @version 1.0
 * @Date 2023/9/16 11:18
 * @Desc 相片Service
 */
@Service
public interface PhotoService extends IService<Photo> {

    /**
     *
     * 通过相册id获取照片列表
     * @param albumId
     * @return PhotoVO
     */
    List<PhotoVO> photoListByAlbumId(Integer albumId);

    /**
     * 获取轮播图照片列表
     * @return
     */
    List<PhotoVO> getCarouselsPhotoList();

    /**
     * 上传照片
     * @param file
     * @return 照片路径
     */
    String uploadPhoto(MultipartFile file);

    /**
     * 批量添加照片
     * @param photoDTOList
     */
    void addPhotos(List<PhotoDTO> photoDTOList);

    /**
     * 查看照片相册信息
     *
     * @param albumId 相册id
     * @return 相册信息
     */
    AlbumBackVO getAlbumInfo(Integer albumId);


    /**
     * 查看后台相册列表
     *
     * @param condition 条件
     * @return 后台相册列表
     */
    PageResult<PhotoBackVO> listPhotoBackVO(ConditionDTO condition);

    /**
     * 更新照片信息
     *
     * @param photoInfo 照片信息
     */
    void updatePhoto(PhotoInfoDTO photoInfo);

    /**
     * 删除照片
     *
     * @param photoIdList 照片id列表
     */
    void deletePhoto(List<Integer> photoIdList);
}
